Ìá½»ÐèÇó
*
*

*
*
*
Á¢¼´Ìá½»
µã»÷¡±Á¢¼´Ìá½»¡±£¬±íÃ÷ÎÒÀí½â²¢Í¬Òâ ¡¶»Æ½ð³Ç¿Æ¼¼Òþ˽Ìõ¿î¡·

logo

    ²úÆ·Óë·þÎñ
    ½â¾ö·½°¸
    ¼¼ÊõÖ§³Ö
    ºÏ×÷·¢Õ¹
    ¹ØÓڻƽð³Ç

    ÉêÇëÊÔÓÃ
      »Æ½ð³Ç¹ÙÍøÊµÑéÊÒ | HTTP×ß˽¹¥»÷Ô­Àí·ÖÎö
      ·¢²¼Ê±¼ä£º2020-09-04 ÔĶÁ´ÎÊý£º 403 ´Î

      µ±½ñÍøÂç»·¾³Ï¹¥»÷Êֶβã³ö²»ÇÆóÒµÔÚÆ£ÓÚÓ¦¶ÔAPTµÈ¹¥»÷ʱ£¬²ßÂÔ¼°×ÊÔ´½«»áÂýÂýÇãб£¬µ¼ÖºܶàÆóÒµºöÊÓÁËһЩ±¬³ö½Ï¾Ã¡¢ÀûÓÃΣº¦²»´óµÄ©¶´¡£ÕâÖÖÏë·¨±¾ÉíÊÇ´íÎóµÄ£¬Ç§Íò²»ÒªÇáÊÓÈκÎÒ»¸ö¿´ÆðÀ´Ã»Ê²Ã´Î£Ïյĩ¶´£¬µ«ÕâЩ©¶´´ò³ö¡°×éºÏÈ­¡±Ê±£¬ÆäÍþÁ¦Ò²Ï൱¿ÉÅ¡£


      ±¾ÆÚ»Æ½ð³Ç»Æ½ð³Ç¹ÙÍøÊµÑéÊÒ½«¸ø´ó¼Ò·ÖÎöÒ»Öֺڿͳ£ÓõĹ¥»÷©¶´Ò²¾ÍÊÇHTTP×ß˽©¶´µÄÔ­Àí¡£


      ©¶´¼ò½é


      HTTP×ß˽©¶´×îÔçÊÇÔÚ2005ÄêÓÉWatchfire¼Ç¼µÄ¡£¿´Â©¶´Ãû×Ö¾ÍÖªµÀ£¬ÕâÊÇÒ»¸öÓëHTTPЭÒéÏà¹ØµÄ©¶´¡£ÔÚĿǰµÄÍøÂç»·¾³Ï£¬ºÜ¶àÍøÕ¾¶¼ÊDzÉÓÃǰºó¶Ë·ÖÀëµÄ·½Ê½½øÐпª·¢µÄ£¬µ«²»Í¬µÄ·þÎñÆ÷¿ÉÄÜ»áÓв»Í¬µÄ·½Ê½ÊµÏÖRFCЭÒé±ê×¼£¬Õâʱºò¹¥»÷Õ߾ͿÉÄÜÀûÓÃǰºó¶Ë·þÎñÆ÷¶ÔÊý¾Ý°üµÄ±ß½çÁ˽ⲻһÖµÄÇé¿ö£¬ÏòÒ»¸öÇëÇóÊý¾Ý°üÖвåÈëÏÂÒ»¸öÇëÇóÊý¾Ý°üµÄÒ»²¿·Ö£¬ÕâÑù¿ÉÄÜÔÚǰ¶Ë¿´À´ÕâÊÇÒ»¸öÍêÕûµÄÊý¾Ý°ü£¬µ«ÔÚºó¶Ë¿´À´ÕâÊÇÁ½¸öÊý¾Ý°ü£¬´Ó¶øÈƹýһЩ»Æ½ð³Ç¹ÙÍø¿ØÖÆ£¬Î´¾­ÊÚȨµÄ·ÃÎÊÃô¸ÐÊý¾ÝÉõÖÁÍ»ÆÆ±ß½ç¡£

       

      ¼òµ¥À´Ëµ£¬Õâ¸ö©¶´¾ÍÊǹ¥»÷ÕßÔÚ¾­¹ý²»¶ÏµØÌ½Ë÷Ö®ºó£¬´ó¸ÅÃþÇåÁËǰºó¶Ë¶ÔÊý¾Ý°üµÄ´¦Àí·½Ê½£¬È»ºóÒÔijÖÖÐÎʽ£¬ÀýÈ罫Á½¸öÊý¾Ý°üºÏ²¢³ÉÒ»¸ö£¬·¢Ë͸øºó¶Ë£¬ºó¶Ë¿ÉÄÜ»á³É¹¦½âÎöÁ½¸öÊý¾Ý°ü£¬´Ó¶øÈƹýÇ°ÃæµÄ»Æ½ð³Ç¹ÙÍø»úÖÆ¡£



      ©¶´ÐγÉÔ­Àí


      ÄÇô¾¿¾¹ÊÇΪʲô»á²úÉúÕâÖÖÇé¿öÄØ£¿ÕâÀïÎÒÃÇÒªÏȽéÉÜ2¸ö¸ÅÄHTTP PipeliningºÍTransfer-Encoding¡£ÔÚHTTP1.1Ö®ºó£¬ÐÂÔöÁËÒ»¸öÌØÊâµÄÇëÇóÍ·Connection£ºKeep-Alive£¬Õâ¸ö×ֶεÄÒâ˼ÊDZíʾÕâÊÇÒ»¸ö³¤Á¬½Ó¡£Ëµµ½³¤Á¬½Ó£¬¾Í²»µÃ²»ÌáÒ»ÏÂTCPÎÕÊÖÁË£¬ÖÚËùÖÜÖª£¬HTTPÊÇÔËÐÐÔÚTCPÉÏÒ»²ãµÄЭÒ飬¶øTCP±¾Éí¾ÍÓÐÆô¶¯ÂýµÄÌØµã£¬ËùÒÔΪÁ˾¡¿ÉÄÜÌá¸ßHTTPµÄÐÔÄÜ£¬³¤Á¬½Óµ®ÉúÁË¡£

       

      ʹÓÃÒì²½¼¼Êõ¿ÉÒÔ½«¶à¸öhttpÇëÇóÅúÁ¿Ìá½»£¬¶ø²»ÓõÈÊÕµ½ÏìÓ¦ÔÙ¿ªÊ¼ÏÂÒ»¸öÇëÇó¡£



      È»ºóÎÒÃÇÔÙ˵Transfer-EncodingÕâÒ»¸ÅÄÔÚÒÔǰÎÒÃÇÓÐÒ»¸öÖ¸±êContent-LengthÄܹ»°ïÖúÎÒÃÇʶ±ðÒ»¸öÊý¾Ý°üµÄ±ß½ç£¬ä¯ÀÀÆ÷¿ÉÒÔͨ¹ýContent-LengthµÄ³¤¶ÈÐÅÏ¢£¬ÅжϳöÏìӦʵÌåÒѽáÊø£¬µ«Ëæ×ÅÏÖÔÚ·þÎñ¶ËΪÁËÓû§µÄÌåÑ飬ÏëÒª»º´æËùÓÐÄÚÈÝÒÔ½µµÍTTFBµÄÖµ£¬ËùÒÔÏÖÔÚÎÒÃǼ±ÐèÒ»¸öеĻúÖÆÄܹ»²»ÒÀÀµÍ·²¿µÄ³¤¶ÈÐÅÏ¢£¬¾ÍÄÜÖªµÀʵÌåµÄ±ß½ç¡£

       

      ¶Ôû´í£¬Transfer-Encoding³öÀ´¾È³¡ÁË£¬Transfer-EncodingËäȻҲÊÇÒ»¸öÍ·ÐÅÏ¢£¬µ«ÊÇËûÆäʵ±íʾµÄÊÇ·Ö¿é±àÂ룬µ±ÎÒÃÇʹÓÃÁËÕâ¸ö±¨ÎÄÍ·ºó£¬¾Í´ú±í±¨ÎIJÉÓÃÁË·Ö¿é±àÂ룬Õâʱ±¨ÎÄÖеÄʵÌåÐèÒª¸ÄΪÓÃһϵÁзֿéÀ´´«Ê䡣ÿ¸ö·Ö¿é°üº¬Ê®Áù½øÖƵij¤¶ÈÖµºÍÊý¾Ý£¬³¤¶ÈÖµ¶ÀÕ¼Ò»ÐУ¬³¤¶È²»°üÀ¨Ëü½áβµÄ CRLF£¨ £©£¬Ò²²»°üÀ¨·Ö¿éÊý¾Ý½áβµÄ CRLF¡£×îºóÒ»¸ö·Ö¿é³¤¶ÈÖµ±ØÐëΪ 0£¬¶ÔÓ¦µÄ·Ö¿éÊý¾ÝûÓÐÄÚÈÝ£¬±íʾʵÌå½áÊø¡£

       

      Ok¡£Ïà¹ØµÄ¸ÅÄîÎÒÃǶ¼Çå³þÁË£¬´ÓHTTP1.1¿ªÊ¼£¬¾ÍÒѾ­Ö§³ÖÁËͨ¹ýTCP·¢ËͶà¸öHTTPÇëÇ󣬷þÎñÆ÷½âÎö±êÍ·ÒÔ¼ÆËã³öÿ¸ö½áÊøµÄλÖÃÒÔ¼°ÏÂÒ»¸ö¿ªÊ¼µÄλÖã¬ËäÈ»ÕâÌýÆðÀ´ÊǺܺÏÀíµÄÉè¼Æ£¬µ«×ÐϸÏëÏ룬ÕâÒâζןó¶Ë·þÎñÆ÷Óëǰ¶Ë·þÎñÆ÷¾Íÿ¸öÏûÏ¢µÄ½áÊøÎ»ÖñØÐëҪͳһ£¬·ñÔò£¬Èç¹û¹¥»÷Õß·¢ËÍÒ»¸öÄ£ºý²»ÇåµÄÇëÇ󣬸ÃÇëÇ󱻺ó¶Ë½âÊÍΪһ¸öÍêÕûµÄÇëÇó¼ÓÉϲÐȱµÄÏÂÒ»¸öÇëÇó£¬ÕâÑù¾Í»á²úÉúHTTP×ß˽©¶´¡£


      HTTP×ß˽©¶´·ÖÀà


      1. Content-Length + Content-LengthÇé¿ö£º


      ¼ÙÉèǰºó¶ËºóÔÊÐí½ÓÊÕÒ»¸öÊý¾Ý°üÖк¬ÓÐÁ½¸öContent-Length£¬ÇÒǰ¶ËÓÅÏÈ¿¼ÂǵÚÒ»¸öÄÚÈݳ¤¶È£¬¶øºó¶ËÓÅÏÈ¿¼Âǵڶþ¸öÄÚÈݳ¤¶È£¬Òò´Ë¹¥»÷Õß¿ÉÒÔ¹¹ÔìÈçÏÂÊý¾Ý°ü£º

       

      POST /HTTP/1.1

      Host: example.com

      Content-Length: 5

      Content-Length: 4


      1234A

       

      ÕâÑùǰ¶Ë¶ÁÈ¡µ½µÚÒ»¸öÄÚÈݳ¤¶ÈΪ5£¬¾Í½«Õû¸öÊý¾Ý°ü·¢Ë͸øºó¶Ë£¬¶øºó¶Ëͨ¹ý¶ÁÈ¡µÚ¶þ¸öÄÚÈݳ¤¶Èºó£¬½«¶ÔÊý¾Ý°üÖкìÉ«ÄÚÈÝ·¢ÆðÏìÓ¦£¬¶øÒÅÁôÏÂÀ´µÄÀ¶É«ÄÚÈÝA,½«±»´æ´¢ÔÚ»º³åÇøÄÚ£¬²¢ÓÚÏÂÒ»¸öÊý¾Ý°ü½øÐÐÆ´½ÓºóÖ´ÐУ¬ÕâÑù¾Í»áµ¼Ö·þÎñÆ÷³ö´í£¬ÒýÆðÒâÍâÏìÓ¦¡£ËäÈ»ÕâÖÖÇé¿ö·¢ÉúµÄÄѶÈÌ«¸ß£¬¶øÇÒRFC7230ÒѾ­¹æ¶¨ÁË·þÎñÆ÷µ±ÊÕµ½ÇëÇóÖаüº¬Á½¸öContent-LengthÇÒÁ½ÕßµÄÖµ²»Í¬Ê±£¬ÐèÒª·µ»Ø400´íÎ󣬵«ÄÑÃâ»áÓзþÎñÆ÷²»Ñϸñ×ñÊØ¹æ·¶µÄÇé¿ö·¢Éú¡£


      2. Content-Length + Transfer-EncodingÇé¿ö£º


      ¹ËÃû˼Ò壬һ¸öÊý¾Ý°ü¿ÉÄܼȴæÔÚContent-Length±¨ÎÄÍ·Ò²¿ÉÄÜ´æÔÚTransfer-Encoding±¨ÎÄÍ·£¬¼ÙÉèǰ¶Ë°´ÕÕContent-LengthÀ´¶¨ÒåÊý¾Ý°ü±ß½ç£¬¶øºó¶ËÔòÒÔTransfer-Encoding±¨ÎÄͷΪ׼¡£ÄÇô¹¥»÷Õß¿ÉÄܹ¹ÔìÈçÏÂÊý¾Ý°ü£º

            

      POST /HTTP/1.1

      Host£ºexample.com

      Content-Length£º6

      Transfer-Encoding£ºchunked


      0

      A

       

      ÕâÑùǰ¶Ë¶ÁÈ¡µ½CL×Ö¶ÎΪ6£¬ËùÒԻὫÕû¸öÊý¾Ý°ü·¢Ë͸øºó¶Ë£¬¶øºó¶Ëͨ¹ý¶ÁÈ¡TEµÄ±êÍ·£¬Ã÷È·Á˱¨ÎÄʵÌå²ÉÓÃÁË·Ö¿é±àÂëµÄ·½Ê½£¬·Ö¿é±àÂëÊÇÓÐÌØ¶¨µÄ¸ñʽ£¬Ç°Ò»ÐÐΪ·Ö¿é±àÂë´óС£¬ºóÒ»ÐÐΪ¾ßÌåµÄÊýÖµ£¬×îÖÕÒÔ0Ϊ½á⣬ËùÒÔºó¶ËÖ»¶ÔÊý¾Ý°üÖеĺìÉ«²¿·Ö½øÐÐÏìÓ¦£¬ÒÅÁôϵÄA»á±»ÁôÔÚ»º³åÇøÖУ¬µÈ´ýºóÐøÇëÇóµÄµ½À´£¬×îÖÕÔì³ÉÒì³£¡£


      3. Transfer-Encoding + Content-LengthÇé¿ö£º


      ͬµÚ¶þÖÖ·½·¨ÀàËÆ£¬Õâ´ÎÊÇǰ¶Ë¸ù¾ÝTransfer-EncodingÀ´¶¨ÒåÊý¾Ý°ü±ß½ç£¬ºó¶Ë¸ù¾ÝContent-LengthÀ´¶¨Òå±ß½ç¡£ÄÇô¹¥»÷Õß¿ÉÄܹ¹ÔìÈçÏÂÊý¾Ý°ü£º

            

      POST /HTTP/1.1

      Host£ºexample.com

      Content-Length£º3

      Transfer-Encoding£ºchunked

            

      1

      A

      0

       

      ǰ¶ËÔÚ½ÓÊÕµ½TEµÄ±¨ÎÄÍ·ºó£¬Ã÷È·±¨ÎÄʵÌå²ÉÓÃÁË·Ö¿é±àÂ뷽ʽ£¬²¢ÇÒÒÔ0Ϊ½áÊø£¬·¢Ë͸øºó¶Ë¡£ºó¶ËÔÚ½ÓÊÕµ½Á˱¨ÎÄÖеÄCLºó£¬Ã÷È·±¨ÎÄʵÌ峤¶ÈΪ3£¬Ò²¾ÍÊǵ½ºìÉ«ÄÚÈÝ´¦½øÐÐÏìÓ¦£¬ÒÅÁôÏÂÀ´µÄA 0 ½«±»ÁôÔÚ»º³åÇøÖУ¬ÓëÏÂÒ»¸öÇëÇóÆ´½Ó£¬´Ó¶øÔì³ÉÒì³£¡£


      4. Transfer-Encoding + Transfer-EncodingÇé¿ö£º


      µ±Ò»¸öÊý¾Ý°üÖдæÔÚÁ½¸öTransfer-Encoding±¨ÎÄͷʱ²¢²»»áÒýÆðÈκδíÎó£¬ÒòΪRFCÖй涨ÁË¿ÉÒÔÔÊÐíÕâÖÖÇé¿öµÄ·¢Éú£¬µ«ÕâÑù¾ÍûÓÐʲôÒâÒåÁË£¬ËùÒÔÒ»°ãÇé¿ö¹¥»÷Õß»áÀûÓõڶþ¸öTEÍ·»ìÏý·Ö¿é±àÂëµÄÖ÷Ì壬ÈÃÒþ²ØÔÚÊÇʵÌåÖ®ÖеÄCLÖ´ÐУ¬¼ÙÉèǰ¶Ë½ÓÊÕµÚÒ»¸öTEÖµ¡¢ºó¶Ë½ÓÊܵڶþ¸öTEÖµ£¬¹¥»÷Õß¿ÉÄܹ¹ÔìÈçÏ´úÂ룺

       

      POST/ HTTP/1.1

      Host£ºexample.com

      Transfer-Encoding£ºchunked

      Transfer-Encoding£ºxxx

            

      5c

      GPOST / HTTP/1.1

      Content-Type£ºapplication/x-www-form-urlencoded

      Content-Length:15

            

      A=1

      0

       

      ǰ¶ËÔÚ½ÓÊÕµ½µÚÒ»¸öTEʱ£¬Ã÷ȷʵÌå²ÉÓ÷ֿé±àÂ룬²¢Ê¶±ðµ½×îÄ©¶ËÊý¾Ý0±íʾʵÌå½áÊø£¬½«Õû¸öÊý¾Ý°ü´«Ë͸øºó¶Ë£¬ºó¶Ë½âÎöµÚ¶þ¸öTE£¬·¢ÏÖ¸ñʽ´íÎó£¬ÕâʱºòĬÈÏÖ´ÐÐCL±¨ÎÄÍ·£¬ËùÒÔÕâ¸öÊý¾Ý°ü¾Í±»²ð·Ö³ÉÁËÁ½¸öÊý¾Ý°ü±»ºó¶ËÖ´Ðв¢ÏìÓ¦ÁË¡£


      ©¶´¼ì²â·½·¨


      1. ¸ù¾ÝÑÓʱ²éÕÒCL+TE»òTE+CL©¶´£º


      ¿ÉÒÔ·¢ËÍÈçÏÂÇëÇó£º


      POST / HTTP/1.1

      Host£ºexample.com

      Transfer-Encoding£ºchunked

      Content-Length£º4

            

      1

      A

      X


      ÀàËÆµÄÕâÖÖÇëÇó£¬Í¨³£¶¼»áµ¼ÖÂʱ¼äÑÓ³Ù£¬ÒòΪÒÅÁôÔÚ»º´æÇøµÄÄÚÈÝÐèÒªÏÂÒ»¸öÊý¾Ý°üµ½´ï²ÅÄܽáÊøÏìÓ¦£¬Òò´Ë»áÓÐÃ÷ÏÔµÄÑÓ³ÙЧӦ¡£Í¬ÀíÕë¶ÔTE+CL©¶´£¬Ö»ÒªÉÔ΢ÐÞ¸ÄһϲâÊÔÊý¾Ý°ü¼´¿É¡£

       

      2. ¾Ý²îÒìÏìӦȷÈÏHTTPÇëÇó×ß˽©¶´£º


      ¿ÉÒÔ·¢ËÍÈçÏÂÊý¾Ý°ü£º


      POST/search HTTP/1.1

      Host: vulnerable-website.com

      Content-Length:50

      Transfer-Encoding:chunked

         

      e

      q=smuggling&x=

      0

         

      GET /404HTTP/1.1

      Foo: x

       

      ǰ¶Ë·þÎñÆ÷¸ù¾ÝCLµÄ½âÎö£¬½«È«²¿ÄÚÈݶ¼·¢Ë͸øºó¶Ë£¬¶øºó¶Ë¸ù¾ÝTEµÄ´æÔÚ£¬½«Æä·Ö³ÉÁËÁ½¸öÊý¾Ý°ü£º


      POST/search HTTP/1.1

      Host:vulnerable-website.com

      Content-Length:50

      Transfer-Encoding:chunked


      e

      q=smuggling&x=

      0

      ºÍ

      GET /404HTTP/1.1

      Foo: x


      ¿É¼û×îºóÁ½Ðб»±£ÁôÔÚ»º³åÇøÖУ¬Ò»µ©ËûÃÇÓëÏÂÒ»¸öÊý¾Ý°üµÄÐÅϢƴ½ÓÔÚÁËÒ»Æð£¬½«»áµ¼ÖÂÊý¾Ý°ü¸ñʽ´íÎ󣬷µ»Ø404Ò³Ãæ£¬Ö¤Ã÷ȷʵ´æÔÚCL+TE©¶´¡£

       

      ·ÀÓùÐÞ¸´·½°¸


      ÔÚǰ¶Ë·þÎñÆ÷ͨ¹ýÍ¬Ò»ÍøÂçÁ¬½Ó½«¶à¸öÇëÇóת·¢µ½ºó¶Ë·þÎñÆ÷µÄÇé¿öÏ£¬»á³öÏÖHTTPÇëÇó×ß˽©¶´£¬²¢ÇÒºó¶ËÁ¬½ÓËùʹÓõÄЭÒéÓпÉÄÜ»áÔì³É±ß½ç²»Í³Ò»µÄ·çÏÕ¡£·ÀÖ¹HTTPÇëÇó×ß˽©¶´µÄһЩͨÓ÷½·¨ÈçÏ£º

       

      ? ½ûÓúó¶ËÁ¬½ÓµÄÖØÓã¬ÒÔ±ãÿ¸öºó¶ËÇëÇóͨ¹ýµ¥¶ÀµÄÍøÂçÁ¬½Ó·¢ËÍ¡£

      ? Ê¹ÓÃHTTP / 2½øÐкó¶ËÁ¬½Ó£¬ÒòΪ´ËЭÒé¿É·ÀÖ¹¶ÔÇëÇóÖ®¼äµÄ±ß½ç²úÉúÆçÒå¡£

      ? Ç°¶Ë·þÎñÆ÷ºÍºó¶Ë·þÎñÆ÷ʹÓÃÍêÈ«ÏàͬµÄWeb·þÎñÆ÷Èí¼þ£¬ÒÔ±ãËüÃǾÍÇëÇóÖ®¼äµÄ½çÏÞ´ï³ÉÒ»Ö¡£
      Ãâ·ÑÊÔÓÃ
      ·þÎñÈÈÏß

      ÂíÉÏ×Éѯ

      400-811-3777

      »Øµ½¶¥²¿
      ¡¾ÍøÕ¾µØÍ¼¡¿¡¾sitemap¡¿